package iso3.pt.action;

import iso3.pt.dao.PtDAO;
import iso3.pt.model.Alumno;
import iso3.pt.model.Asignatura;
import iso3.pt.model.Evaluacion;

import java.util.Map;
import java.util.Set;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;

public class InsertarNota extends ActionSupport implements Preparable{
	private String concepto;
	private String nota;
	private PtDAO dao;
	private Alumno alum;
	private Asignatura asig;
	private String dniAlumno;
	private String codAsignatura;
	
	
	
	public String getCodAsignatura() {
		return codAsignatura;
	}
	public void setCodAsignatura(String codAsignatura) {
		this.codAsignatura = codAsignatura;
	}
	public String getDniAlumno() {
		return dniAlumno;
	}
	public void setDniAlumno(String dniAlumno) {
		this.dniAlumno = dniAlumno;
	}
	private Set<Evaluacion> listaEvals;
	
	public String getConcepto() {
		return concepto;
	}
	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}
	public String getNota() {
		return nota;
	}
	public void setNota(String nota) {
		this.nota = nota;
	}
	public PtDAO getDao() {
		return dao;
	}
	public void setDao(PtDAO dao) {
		this.dao = dao;
	}
	public Alumno getAlum() {
		return alum;
	}
	public void setAlum(Alumno alum) {
		this.alum = alum;
	}
	public Asignatura getAsig() {
		return asig;
	}
	public void setAsig(Asignatura asig) {
		this.asig = asig;
	}
	public Set<Evaluacion> getListaEvals() {
		return listaEvals;
	}
	public void setListaEvals(Set<Evaluacion> listaEvals) {
		this.listaEvals = listaEvals;
	}
	
	
	@Override
	public void prepare() throws Exception {
		dao= PtDAO.getInstance();
	}
	public String execute(){
		Map<String,Object> session= ActionContext.getContext().getSession();
		alum= (Alumno)session.get("alum");
		asig= (Asignatura)session.get("asig");
		if (concepto.equals("")||nota.equals("")){
			addActionError(getText("errors.required.notaConcepto"));
			codAsignatura=Integer.toString(asig.getId());
			return ERROR;
		}
		try{
			if (!nota.contains(".")){
				nota=nota.concat(".0");
			}
			dao.addEvaluacion(concepto, Float.parseFloat(nota), asig.getId(), alum.getDni());
		}catch (Exception e){
			addActionError(getText("errors.noEsFloat"));
			codAsignatura=Integer.toString(asig.getId());
			return ERROR;
		}
		listaEvals= dao.getEvaluaciones(asig.getId(), alum.getDni());
		dniAlumno=Integer.toString(alum.getDni());
		return "ok";
	}

	
	
}
